# encoding: utf-8
require "time"
require "logger"
#跟踪工具
module SuppliersHelper
  #读取GPS数据
  #[data] GPS服务提供商发送的GPS数据
  def read_gps(data)
    ret = {}
    gps = ActiveSupport::JSON.decode data
    Logger.new(File.expand_path("../../../log/gps_data.log", __FILE__)).info(gps)
    gps.delete "count"
    gps.delete "page"
    gps.each { |g|
      ret[g[0]] = read_gps_str g[1]
    }
    ret
  end
  #解析GPS数据字串
  #[str] 车辆数据字串
  def read_gps_str(str)
    if str[0]=='$'
      return read_gps_str_nmea str
    end
    read_gps_str_simple str
  end

  #读取简单格式的GPS数据
  def read_gps_str_simple(str)
    ret = []
    str.split(';').each { |s|
      g = Gps.new
      data = s.split ','
      g.datetime= Time.strptime(data[0]+','+data[1], "%d%m%y,%H%M%S.%L")
      g.lat = (data[2].to_f*1000000).to_i # 纬度
      g.lng = (data[4].to_f*1000000).to_i # 经度
      g.speed = (data[6].to_f*1000).to_i
      g.direction = (data[7].to_f*10).to_i
      ret << g
    }
    ret
  end
  #读取NMEA 0183格式的GPS数据
  def read_gps_str_nmea(str)
    #TODO未完成 缺少测试类
  end
  #检查是否是合法的GPS数据
  #[key] 密钥
  #[timestamp] 时间戳
  #[data] GPS服务提供商发送的GPS数据
  #[sign] 签名
  def is_gps?(key, timestamp, data, sign)
    true
  end
end

#puts Time.strptime('210712,063621.000', "%d%m%y,%H%M%S.%L").class